Forward error correction (FEC) techniques are commonly used in packet-based networks, such as the Internet, to compensate for packet losses. An exemplary FEC technique suitable for use with real-time media packets employing the real-time transmission protocol (RTP) is described in IETF RFC 2733, “An RTP Payload Format for Generic Forward Error Correction,” J. Rosenberg et al., December 1999, which is incorporated by reference herein. In accordance with this technique, an additional packet, called a checksum packet or FEC packet, is added to a media frame, which comprises a block of data packets, before transmission of the frame. At a receiver, a lost data packet of the frame can be recovered by combining the checksum packet with those data packets that were successfully received. More specifically, the lost data packet is recovered by performing mathematical operations, such as exclusive-or (XOR) logic operations, on the checksum packet and the successfully received data packets.
In a conventional arrangement, a received packet is stored in a packet buffer of a receiver for subsequent processing by a FEC decoder of that receiver. The FEC decoder is configured in accordance with the above-cited RFC 2733. The FEC decoder determines whether the media frame to which the received packet belongs is ready for FEC decoding. If not, a subsequent packet is received and stored. If, however, the frame is ready for FEC decoding, the FEC decoder reads the checksum packet and the successfully received data packets for the frame from the packet buffer and performs mathematical operations (e.g., XOR logic operations) on the checksum packet and the successfully received data packets, and then reconstructs the missing packet based on the results of the mathematical operations.
A significant drawback of the above-described conventional arrangement is that the packet buffer is generally configured to store the maximum number of packets that may be present within a given variable-length frame. This is because the mathematical computations associated with missing packet recovery are performed only after all of the received packets associated with a given frame are present in the packet buffer. This unduly increases the required size of the packet buffer, as well as the processing latency associated with missing packet recovery.